package com.zz.framework.core.ext

/**
 * Copyright © 2024 zhun All rights reserved.
 * Created by Zha0Zhun on 2024/7/10 16:55.
 * @author: Zha0Zhun 1820022519@qq.com
 * @version: V1.0
 */

/**
 * 格式化数字
 * @receiver Float
 * @param decimals Int
 * @return String
 */
fun Float.format(decimals: Int = 2): String {
    return if (rem(1) == 0f) {
        toInt().toString()
    } else {
        "%.${decimals}f".format(this)
        // %.2f: 格式说明符，用于格式化浮点数，f 表示浮点数，.2 表示小数点后保留两位数字
    }
}

/**
 *
 * @receiver Double
 * @param decimals Int
 * @return String
 */
fun Double.format(decimals: Int = 2): String {
    return if (rem(1) == 0.0) {
        toInt().toString()
    } else {
        "%.${decimals}f".format(this)
    }
}

/**
 * 格式化度数
 * @param degrees 度数
 */
fun Float.formatDegree(decimals: Int = 1): String {
    return "${"%.${decimals}f".format(this)}°"
}

/**
 * 格式化距离
 * @param meters 米数
 */
fun Int.formatDistance(decimals: Int = 1): String {
    return if (this >= 1000) {
        "%.${decimals}fkm".format(this / 1000f)
    } else {
        "${this}m"
    }
}